模型(Model)
Model負責與資料庫溝通的相關邏輯,我們可以自行定義模型的類別,或是使用Entity Framework來幫我們自動產生資料庫對應的類別,今天我們以自定義類別為主。
承接昨天的範例,我們現在希望在Controller向Model取得所有商品的資料後,傳送給View並顯示出來,首先看Model部分:
( 專案路徑為[Models/RouteTest/TempProducts.cs] )
TempProducts類別定義單筆商品資料,屬性定義如下:
ID : 商品編號
Name : 商品名稱
Price : 商品價格
除此之外,此類別也定義了getAllproducts()方法來模擬取出所有商品資訊,其中包含三筆商品資訊。
Controoler部分:
(專案路徑為[Controllers/RouteTestController.cs] )
這部分比較簡單,就是跟Models中的TempProducts類別取得所有商品資訊後,傳送給View();
View部分:
(專案路徑為[Views/RouteTest/Index.cshtml])
View部分要注意一開始的宣告【@model List<Carts.Models.RouteTest.TempProducts>】是指名傳送進來的模型資料型態為List<Carts.Models.RouteTest.TempProducts>,須注意當前模型內容使用【this.Model】來取得。
運行結果:
( Url位址 : http://localhost:51352/RouteTest/Index )
以上就是基礎的MCV完整流程,美中不足的一點是商品資訊並非真正由資料庫取得,而是使用寫死在TempProducts.cs類別的方式,明天我們將示範如何真正從資料庫拿資料。
*今天的原始碼請參考這裡
@model List<Carts.Models.RouteTest.TempProducts> <--這一行去掉系統也可以正常Run